<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="author" content="BotoX">
<meta name="description" content="Générateur de custom firmware pour Ninebot ES/SNSC">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="/static/favicon.png">
<link rel="stylesheet" type="text/css" href="/static/style.css">
<title>Générateur de custom firmware pour Ninebot ES/SNSC</title>
</head>

<body>

<div class="header">
	<a href="https://www.scooterhacking.org"><img src="/static/back.png" width="33" height="33" hspace="10" alt="Retourner vers ScooterHacking.org"></a>  <a href="https://sctrhck.ml/discord"><img src="/static/discord.png" width="105" height="33" hspace="10" alt="Rejoindre le serveur Discord"></a>   <a href="https://sctrhck.ml/tgchat"><img src="/static/telegram.png" height="34" hspace="10" alt="Join us on Telegram"></a>  
    <h1>Générateur de custom firmware pour Ninebot ES/SNSC</h1>
	<a href="/"><img src="/static/us-icon.png" /></a> - <b>[<a href="/fr"><img src="/static/fr-icon.png" /></a>]</b> - <a href="/ru"><img src="/static/ru-icon.png" /></a> - <a href="/cn"><img src="/static/cn-icon.png" /></a>
</div>

<div class="content">
<p>
    Configurez votre propre custom firmware en modifiant les options ci-dessous.<br>
    Des mesures de sécurité sont appliquées pour éviter le brick de votre trottinette.<br>
    Soyez conscient qu'une puissance moteur élevée réduit la durée de vie de celui-ci, ainsi que de la batterie.<br>
    Par défaut, rien ne sera modifié. Activez l'option "Modifier?" à côté des options désirées.<br />
	ScooterHacking.org ou ses membres ne peuvent être tenus responsables des dégats causés à vous ou votre trottinette.
</p>

<p>
    Pré-réglages:
    <button onclick="Preset_Default();">Défaut</button>
	<button onclick="Preset_ES4();">ES4</button>
	<button onclick="Preset_ES4L();">ES4-L</button>
	<button onclick="Preset_ES2Mod();">ES2Mod</button>
</p>

<noscript>This website (despite it's look) requires some very simple JavaScript which is embedded in this HTML.</noscript>

<hr>
<form action="/cfw" onsubmit="return confirm('Souhaitez-vous vraiment générer votre CFW? Cet outil est très expérimental!');">
<ul>
    <li><p>
        Version de base de votre firmware:
        <select name="version">
            <option value="DRV120">1.2.0</option>
            <option value="DRV133">1.3.3</option>
			<option value="DRV139">1.3.9</option>
			<option value="DRV150">1.5.0</option>
			<option value="DRV151" selected>1.5.1</option>
        </select>
        <br>
        La 1.3+ est recommandée, puisqu'elle ne nécessitera sûrement pas un downgrade BMS.<br />
		<!--<i>Les version marquées d'un <b>(!)</b> peuvent ne pas être compatibles avec les patchs.</i>-->
    </p></li>

    <li><p>
        Format de sortie:
        <select name="output">
            <option value="zip" selected>ZIP</option>
            <option value="enc">Bin encodé</option>
			<option value="bin">Bin</option>
        </select>
        <br>
        Sélectionnez <b>ZIP</b> si vous souhaitez flasher avec <a href="https://sctrhck.ml/ninebotfun">NinebotFun</a> / <a href="https://sctrhck.ml/esdowng">ES DownG</a>.<br />
		Sélectionnez <b>Bin encodé</b> si vous souhaitez flasher avec <a href="https://sctrhck.ml/ninebotflasher">Ninebot-Flasher</a> / py9b / NineRift.<br />
        Sélectionnez <b>Bin</b> si vous savez ce que vous faites. Ne flashez pas ce fichier.
    </p></li>

    <li><p>
        Vitesse minimum du KERS:
        <input name="kers_min_speed" type="number" step="1" min="0" max="100" value="6" disabled>
        <label><input type="checkbox" onchange="CheckForm('kers_min_speed', this);">Modifier?</label>
        <br>
        Vitesse en km/h à laquelle la trottinette se mettra à freiner si le moteur n'est pas actif.<br />
		Vous aurez toujours la récupération d'énergie lors du freinage.<br />
		Pour désactiver le KERS, mettez cette valeur à 40.<br />
		<b><font color="red">Désactiver le KERS peut amener à la destruction de votre control board et à des blessures provoquées par un freinage puissant.</font></b> <a href="https://www.scooterhacking.org/forum/viewtopic.php?f=4&t=118">(...)</a>
    </p></li>
	
    <li><p>
        Facteur de division du KERS:
        <input name="kers_dividor" type="number" step="4" min="2" max="6" value="2" disabled>
        <label><input type="checkbox" onchange="CheckForm('kers_dividor', this);">Modifier?</label>
        <br>
        A quel facteur la force du KERS sera divisée.<br /><i>Seulement 6 et 2 sont disponibles pour éviter des potentiels bricks.</i><br />
    </p></li>

    <li><p>
        Vitesse maximum:
        <input name="max_speed" type="number" step="1" min="0" max="35" value="32" disabled>
        <label><input type="checkbox" onchange="CheckForm('max_speed', this);">Modifier?</label>
        <br>
        La trottinette restera à une vitesse inférieure à cette valeur. Utilisez cet outil si vous rencontrez un soucis de vitesse limitée. 
    </p></li>

    <li><p>
        Délai du régulateur de vitesse:
        <input name="cruise_control_delay" type="number" step="1" min="1" max="100" value="5" disabled>
        <label><input type="checkbox" onchange="CheckForm('cruise_control_delay', this);">Modifier?</label>
        <br>
        Combien de secondes avant l'activation du régulateur. 
    </p></li>
	
    <li><p>
        Vitesse de démarrage du moteur:
        <input name="motor_start_speed" type="number" step="1" min="0" max="10" value="5" disabled>
        <label><input type="checkbox" onchange="CheckForm('motor_start_speed', this);">Modifier?</label>
        <br>
        Vitesse minimum en km/h avant que le moteur fonctionne. 
    </p></li>
	
     <li><p>
        Changement de version:
        <label><input type="checkbox" name="version_spoofing"></label>
        <br>
        Change le numéro de version dans l'application Ninebot pour éviter l'écrasement du CFW.
    </p></li>
    
   <li><p>
        Activer le SWD:
        <label><input type="checkbox" name="swd_enable"></label>
        <br>
        Activer l'interface SWD, permettant le débuggage en temps réel avec ST-Link. <b> <font color="orange">En test!</font></b>
    </p></li>

   <li><p>
        Support des batteries universelles:
        <label><input type="checkbox" name="bypass_BMS"></label>
        <br>
        Permet à la trottinette de fonctionner sans BMS Ninebot. <b><font color="red">Expérimental!</font></b><br />
        <i>Avertissement: la trottinette ne donnera pas d'informations sur l'état, la tension et la charge de la batterie.</i>
    </p></li>

    <li><p>
        Alrogithme d'accélération basé sur la puissance:
        <label><input type="checkbox" name="throttle_alg"></label>
        <br>
        La position de la gâchette d'accélération sera proportionnelle à la puissance plutôt que d'être poportionnelle à la vittesse.<br />
        La vitesse maximum n'est pas applicable dans ce mode.
    </p></li>
    
    <li><p>
        Constante de puissance moteur:
        <input name="motor_power_constant" type="number" step="1" min="40000" max="65535" value="51575" disabled>
        <label><input type="checkbox" onchange="CheckForm('motor_power_constant', this);">Modifier?</label>
        <br>
        Plus bas = plus de puissance. Augmenter la puissance réduit la durée de vie du moteur et de la batterie.<br>
        <b><font color="red">Modifier cette valeur sans savoir ce que vous faites entraînera la destruction de votre trottinette.</font></b>
    </p></li>

    <li><p>
    <label>Maintenir la trottinette allumée lorsqu'elle est verouillée:
    <input type="checkbox" name="stay_on_locked"></label><br />
    La trottinette ne s'éteindra jamais si elle est verrouillée.
    </p></li> 
	
    <li><p>
    Ignorer l'état du chargeur:
    <input type="checkbox" name="remove_charging_mode">
    <br>
    L'ESC ignorera l'état de l'entrée chargeur, la trottinette peut être utilisée durant la charge. Utile pour des batteries externes non-officielles.
    </p></li>
	
	<li>
    <label>Changer la vitesse de transmission ESC<->BMS à 76800 bauds:
    <input type="checkbox" name="bms_uart_76800"></label>
    <p>Seulement si vous utilisez <a href="#"> le BMS open-source compatible inexistant</a>!</p>
    </li>
	
	<li><p>
    Coefficient de vitesse de la roue:
    <input name="wheel_speed_const" type="number" step="1" min="200" max="500" value="390" disabled></label>
    <label><input type="checkbox" onchange="CheckForm('wheel_speed_const', this);">Modifier?</label><br />
    Pour des roues 10 pouces, utilisez 315. Sinon, ne pas changer. <b><font color="red">Expérimental!</font></b>
    </p></li>

</ul>
<hr>

<p>
    Soyez sûr de vos valeurs avant de valider!<br>
    <b>JE SUIS RESPONSABLE DES VALEURS ENTREES:</b>
    <input type="submit" value="Générer!"/>
    <button type="button" onclick="Share();">Partager</button>
    <span id="shareConfirmation"></span>
</p>
</form>

<p>
    <b><span style="color: red;">&#9888;&nbsp;NOUVEAU </span>L'outil génère maintenant un .zip avec le firmware encrypté, non encrypté et un fichier .txt.</b><br>
    <b><span style="color: red;">&#9888;&nbsp;NOUVEAU </span>Utilisez l'outil suivant pour flasher via Windows 10 (auteur: majsi): <a href="https://www.microsoft.com/en-us/p/ninebot-flasher/9p5hws0hq55s?activetab=pivot:overviewtab">Ninebot-Flasher</a></b><br>
	<b><span style="color: red;">&#9888;&nbsp;NOUVEAU </span>Utilisez l'outil suivant pour flasher via Android (auteur: CamiAlfa) <a href="https://play.google.com/store/apps/details?id=com.esdowngrade">ES DownG</a></b><br>
	</p>

<hr>
<p>
    Code source sur GitHub: <a href="https://github.com/scooterhacking/ninebot-es-snsc-firmware-patcher" target="_blank">https://github.com/scooterhacking/ninebot-es-snsc-firmware-patcher</a>
    <br>
    <b>Faire un don à majsi (CFW scripting): <a href="https://www.paypal.me/majsinko" target="_blank">https://www.paypal.me/majsinko</a><br />
	Faire un don à CamiAlfa (ES DownG): <a href="https://www.paypal.me/camialfa" target="_blank">https://www.paypal.me/camialfa</a><br />
	Faire un don à ScooterHacking.org (hébergeur, maintenance): <a href="https://paypal.me/scooterhacking" target="_blank">https://paypal.me/scooterhacking</a><br />
	Faire un don à BotoX(créateur du générateur de CFW pour M365): <a href="https://paypal.me/BotoXbz" target="_blank">https://paypal.me/BotoXbz</a></b>
</p>
</div>

<script src="/static/old_form.js" type="text/javascript"></script>
</body>
